#pragma once
#include "Move.h"
#include "BreakthroughGameState.h"
#include <vector>
#include <algorithm>
#include <climits>
class Minimax
{
public:
	/**
	* Default constructor
	*/
	Minimax() {};

	/**
	* Returns Best Move possible
	*/
	Move& getBestMove();

	/**
	* Goes recursive over the board, and finds best move possible
	*/
	int miniMax(int depth, BreakthroughGameState& s, std::vector< std::vector<char> >& grid);
private:
	Move m_bestMove; ///< Best move
};
